import java.util.ArrayList;
import java.util.List;
import java.util.Random;


public class Obszar {
	int x;
	int y;
	Ziarno [][]tablica;//= new Ziarno[x][y];
	Ziarno [][]tablica2;//= new Ziarno[x][y];
	int idea;
	public Obszar(int x, int y) {
		this.x=x;
		this.y=y;
		this.tablica=new Ziarno[this.x][this.y];
		this.tablica2=new Ziarno[this.x][this.y];
		this.idea=250000;
		for(int i =0;i<this.x;i++)
			for(int j =0;j<this.y;j++)
			{
				this.tablica[i][j]=new Ziarno(0,i,j,255,255,255,false);
				this.tablica2[i][j]=new Ziarno(0,i,j,255,255,255,false);
			}
		czysc();
//		this.tablica[100][100]=new Ziarno(1,100,100,120,120,120,true);
//		this.tablica[250][250]=new Ziarno(2,250,250,100,180,255,true);
//		this.tablica[350][400]=new Ziarno(3,350,400,169,0,120,true);
//		this.tablica[250][250]=new Ziarno(1,250,250,200,200,200,true);
	}
	public void czysc()
	{
		for(int i =0;i<this.x;i++)
			for(int j =0;j<this.y;j++)
			{
				this.tablica[i][j]=new Ziarno(0,i,j,255,255,255,false);
				this.tablica2[i][j]=new Ziarno(0,i,j,255,255,255,false);
			}
//this.tablica[250][250]=new Ziarno(1,250,250,100,100,0,true);
//this.tablica2[250][250]=new Ziarno(1,250,250,100,100,0,true);
	}
	
public void rownomiernie()
	{
		czysc();
		Random r = new Random();
		for(int i=this.x/5;i<this.x;i+=this.x/5)
		{for (int j=this.y/5;j<this.y;j+=this.y/5)
		{
			this.tablica[i][j]=new Ziarno(i+j,i,j,r.nextInt(255),r.nextInt(255),r.nextInt(255),true);
		}
		}

	}
public void Moorebez()
{
	for(int i =1;i<this.x-1;i++)
	{
		for(int j =1;j<this.y-1;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[i-1][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j-1]);
			}
			
			if(this.tablica[i-1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
			}
			
			if(this.tablica[i-1][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j+1]);
			}
			
			if(this.tablica[i][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
			}
			
			if(this.tablica[i][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
			}
			
			if(this.tablica[i+1][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j-1]);
			}
			
			if(this.tablica[i+1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
			}
			
			if(this.tablica[i+1][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j+1]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);
	
}

public void Moorez()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[xleft][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][ydown]);
			}
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			if(this.tablica[xleft][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][yup]);
			}
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			if(this.tablica[xright][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][ydown]);
			}
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			if(this.tablica[xright][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][yup]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);
	
}

public void Vonbez()
{
	for(int i =1;i<this.x-1;i++)
		{
	for(int j =1;j<this.y-1;j++)
	{
		
		if(this.tablica[i][j].id!=0)
		{	
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
			
			if(this.tablica[i-1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
			}
			if(this.tablica[i][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
			}
			if(this.tablica[i][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
			}
			if(this.tablica[i+1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
			}
		}
	}
}
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);

}

public void Vonz()
{
	
	
	for(int i =0;i<this.x;i++)
		{
	for(int j =0;j<this.y;j++)
	{
		
		if(this.tablica[i][j].id!=0)
		{	
			int xleft=i-1;
			int xright=i+1;
			int yup=j-1;
			int ydown=j+1;
			
			if(i==0)
			{xleft=this.x-1;}
			if(i==this.x-1)
			{xright=0;}
			if(j==0)
			{yup=this.y-1;}
			if(j==this.y-1)
			{ydown=0;}
		this.tablica[i][j].Przypisz(this.tablica2[i][j]);
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
		}
	}
}
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);

}

public boolean zakoncz()

{
	for(int i =1;i<this.x-1;i++)
	{for(int j =1;j<this.y-1;j++)
	{
		if(this.tablica[i][j].id==0)
		return false;
	}}
	return true;
	
}

public void PentagonalneLewebez()
{
	for(int i =1;i<this.x-1;i++)
	{
		for(int j =1;j<this.y-1;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[i-1][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j-1]);
			}
			
			if(this.tablica[i-1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
			}
			
			if(this.tablica[i-1][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j+1]);
			}
			
			if(this.tablica[i][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
			}
			
			if(this.tablica[i][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
			}
			
			
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);
	
}

public void PentagonalnePrawebez()

	{
		for(int i =1;i<this.x-1;i++)
		{
			for(int j =1;j<this.y-1;j++)
			{
			
				if(this.tablica[i][j].id!=0)
				{	
				this.tablica[i][j].Przypisz(this.tablica2[i][j]);
			
				
				
				if(this.tablica[i][j-1].id==0)
				{
					this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
				}
				
				if(this.tablica[i][j+1].id==0)
				{
					this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
				}
				
				if(this.tablica[i+1][j-1].id==0)
				{
					this.tablica[i][j].Przypisz(this.tablica2[i+1][j-1]);
				}
				
				if(this.tablica[i+1][j].id==0)
				{
					this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
				}
				
				if(this.tablica[i+1][j+1].id==0)
				{
					this.tablica[i][j].Przypisz(this.tablica2[i+1][j+1]);
				}
				
			}	
		}
	}
		
		for(int i =0;i<this.x;i++)
			for(int j =0;j<this.y;j++)
				this.tablica2[i][j].Przypisz(this.tablica[i][j]);
		
	}

public void PentagonalneDolbez()
{
	for(int i =1;i<this.x-1;i++)
	{
		for(int j =1;j<this.y-1;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			
			
			if(this.tablica[i-1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
			}
			
			if(this.tablica[i-1][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j+1]);
			}
			
			
			
			if(this.tablica[i][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
			}
			
			
			
			if(this.tablica[i+1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
			}
			
			if(this.tablica[i+1][j+1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j+1]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);
	
}

public void PentagonalneGorabez()
{
	for(int i =1;i<this.x-1;i++)
	{
		for(int j =1;j<this.y-1;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[i-1][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j-1]);
			}
			
			if(this.tablica[i-1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
			}
			
			
			
			if(this.tablica[i][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
			}
			
			
			
			if(this.tablica[i+1][j-1].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j-1]);
			}
			
			if(this.tablica[i+1][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
			}
			
			
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);
	

}


public void HeksaLewaGoraBez()
{
	for(int i =1;i<this.x-1;i++)
{
	for(int j =1;j<this.y-1;j++)
	{
	
		if(this.tablica[i][j].id!=0)
		{	
		this.tablica[i][j].Przypisz(this.tablica2[i][j]);
	
		if(this.tablica[i-1][j-1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i-1][j-1]);
		}
		
		if(this.tablica[i-1][j].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
		}
		
		
		
		if(this.tablica[i][j-1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
		}
		
		if(this.tablica[i][j+1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
		}
		
		
		
		if(this.tablica[i+1][j].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
		}
		
		if(this.tablica[i+1][j+1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i+1][j+1]);
		}
		
	}	
}
}

for(int i =0;i<this.x;i++)
	for(int j =0;j<this.y;j++)
		this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void HeksaLewaDolBez()
{
	for(int i =1;i<this.x-1;i++)
{
	for(int j =1;j<this.y-1;j++)
	{
	
		if(this.tablica[i][j].id!=0)
		{	
		this.tablica[i][j].Przypisz(this.tablica2[i][j]);
	
		
		
		if(this.tablica[i-1][j].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i-1][j]);
		}
		
		if(this.tablica[i-1][j+1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i-1][j+1]);
		}
		
		if(this.tablica[i][j-1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i][j-1]);
		}
		
		if(this.tablica[i][j+1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i][j+1]);
		}
		
		if(this.tablica[i+1][j-1].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i+1][j-1]);
		}
		
		if(this.tablica[i+1][j].id==0)
		{
			this.tablica[i][j].Przypisz(this.tablica2[i+1][j]);
		}
		
		
		
	}	
}
}

for(int i =0;i<this.x;i++)
	for(int j =0;j<this.y;j++)
		this.tablica2[i][j].Przypisz(this.tablica[i][j]);}


// PERIODYKA dla nowych
public void PentagonalneLewez()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[xleft][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][ydown]);
			}
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			if(this.tablica[xleft][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][yup]);
			}
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void PentagonalnePrawez()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			if(this.tablica[xright][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][ydown]);
			}
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			if(this.tablica[xright][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][yup]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void PentagonalneDolz()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[xleft][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][ydown]);
			}
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			
			
			if(this.tablica[xright][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][ydown]);
			}
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void PentagonalneGoraz()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			if(this.tablica[xleft][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][yup]);
			}
			
			
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			if(this.tablica[xright][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][yup]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void HeksaLewaGoraz()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			if(this.tablica[xleft][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][yup]);
			}
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			if(this.tablica[xright][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][ydown]);
			}
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void HeksaLewaDolz()
{
	for(int i =0;i<this.x;i++)
	{
		for(int j =0;j<this.y;j++)
		{
		
			if(this.tablica[i][j].id!=0)
			{	int xleft=i-1;
				int xright=i+1;
				int yup=j-1;
				int ydown=j+1;
				
				if(i==0)
				{xleft=this.x-1;}
				if(i==this.x-1)
				{xright=0;}
				if(j==0)
				{yup=this.y-1;}
				if(j==this.y-1)
				{ydown=0;}
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);
		
			if(this.tablica[xleft][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][ydown]);
			}
			
			if(this.tablica[xleft][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xleft][j]);
			}
			
			if(this.tablica[i][ydown].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][ydown]);
			}
			
			if(this.tablica[i][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[i][yup]);
			}
			
			
			
			if(this.tablica[xright][j].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][j]);
			}
			
			if(this.tablica[xright][yup].id==0)
			{
				this.tablica[i][j].Przypisz(this.tablica2[xright][yup]);
			}
			
		}	
	}
}
	
	for(int i =0;i<this.x;i++)
		for(int j =0;j<this.y;j++)
			this.tablica2[i][j].Przypisz(this.tablica[i][j]);}

public void Losowe(int ilosc)
{
	Random r = new Random();
	for(int i=0;i<ilosc;i++)
	{
	int a=r.nextInt(this.x);
	int b=r.nextInt(this.y);
	int gr=r.nextInt(255);
	int gg=r.nextInt(255);
	int gb=r.nextInt(255);
	this.tablica[a][b]=new Ziarno(this.idea++,a,b,gr,gg,gb,true);	
	System.out.println(this.tablica[a][b].id);
	}
}

/*
 * TERAZ BEDZIE NOWE MUROWANIE! CIEKAWE CZY TO SIE CZYMS ROZNI TAK NAPRAWDE..
 */


public void MooreNowyBez()
{
	for(int x =1;x<this.x-1;x++)

{
for(int y =1;y<this.y-1;y++)
{
	int []tab=new int[8];
	for (int i=0;i<8;i++)
		tab[i]=0;
	if(this.tablica[x][y].id==0)
	{
		if(this.tablica[x-1][y-1].id!=0)
		{
			tab[0]=this.tablica[x-1][y-1].id;
		}
		if(this.tablica[x-1][y].id!=0)
		{
			tab[1]=this.tablica[x-1][y].id;
		}
		if(this.tablica[x-1][y+1].id!=0)
		{
			tab[2]=this.tablica[x-1][y].id;
		}
		if(this.tablica[x][y-1].id!=0)
		{
			tab[3]=this.tablica[x][y-1].id;
		}
		if(this.tablica[x][y+1].id!=0)
		{
			tab[4]=this.tablica[x][y+1].id;
		}
		if(this.tablica[x+1][y-1].id!=0)
		{
			tab[5]=this.tablica[x+1][y-1].id;
		}
		if(this.tablica[x+1][y].id!=0)
		{
			tab[6]=this.tablica[x+1][y].id;
		}
		if(this.tablica[x+1][y+1].id!=0)
		{
			tab[7]=this.tablica[x+1][y+1].id;
		}
	}
	int decyzja=getPopularElement(tab);
	for(int i =0;i<this.x;i++)
	{	for(int j =0;j<this.y;j++)
			{
		if(this.tablica[i][j].id==decyzja)
			{
			this.tablica[i][j].Przypisz(this.tablica2[i][j]);	
			}
			}
	}

}
}
	
	
	
	
}

public int getPopularElement(int[] a)
{
  int count = 1, tempCount;
  int popular = a[0];
  int temp = 0;
  for (int i = 0; i < (a.length - 1); i++)
  {    
    temp = a[i];
  
    tempCount = 0;
    for (int j = 1; j < a.length; j++)
    {
      if (temp == a[j])
        tempCount++;
    }
    if (tempCount > count)
    {
      popular = temp;
      count = tempCount;
    }
  }
  System.out.println(popular);
  if(przepatrz(a)!=0)
	  return przepatrz(a);
  else
  return popular;
}
public int przepatrz(int [] g)
{
	for(int a=0;a<g.length;a++)
		if(g[a]!=0)
			return g[a];
	
return 0;
}

public int retIdea()
{
	return this.idea;
}


}
